package com.xhtt.modules.inspection.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 巡检任务-计算后的每次任务明细
 * </p>
 *
 * @author xj
 * @since 2019-01-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class InsTaskStep extends Model<InsTaskStep> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 关联-任务ID
     */
    private Integer taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 班组id
     */
    @TableField(exist = false)
    private Integer teamId;

    /**
     * 第几次
     */
    private String step;

    /**
     * 任务类型
     */
    @TableField(exist = false)
    private Integer inspectType;

    /**
     * 算完的结果-巡检时间段-开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime taskStartDate;

    /**
     * 算完的结果-巡检时间段-结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime taskEndDate;

    /**
     * 巡检时间段-日班-开始时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectMorningStartDate;

    /**
     * 巡检时间段-日班-结束时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectMorningEndDate;

    /**
     * 巡检时间段-夜班-开始时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectNightStartDate;

    /**
     * 巡检时间段-夜班-结束时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalDateTime inspectNightEndDate;

    /**
     * 巡检结束保存的时间
     */
    private LocalDateTime resultDate;

    /**
     * 点击开始巡检的时间
     */
    private LocalDateTime execStartDate;


    /**
     * 点击开始巡检的人id
     */
    private Long executorId;

    /**
     * 点击开始巡检的人
     */
    private String executor;

    /**
     * 1未巡检2已巡检
     */
    private Integer status;

    /**
     * 只有日巡检用到
     * 1日班2夜班
     */
    private Integer shiftType;

    /**
     * 备注
     */
    private String memo;

    /**
     * 有没有推送
     */
    private Integer pushed;

    /**
     * 报警推送
     */
    private Integer pushed2;

//    @TableLogic
//    private int delFlag;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后一次调整时间
     */
    @TableField(update = "now()")
    private LocalDateTime updateTime;

    /**
     * 创建者ID，人工系统创建为0
     */
    private Integer createUserId;

    /**
     * 最后一次调整者ID
     */
    private Integer updateUserId;

    /**
     * 频率
     */
    private Integer inspectRate;

    /**
     * 第一次添加时候的开始时间, 添加后不可修改
     */
    private LocalDateTime morningStartDate;
    private LocalDateTime morningEndDate;
    private LocalDateTime nightStartDate;
    private LocalDateTime nightEndDate;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
